/*
 * Copyright (c) 2006-2025, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2025-09-30     Guotong first version
 */

#ifndef __DRV_UART2_H__
#define __DRV_UART2_H__

#include <rtthread.h>
#include <stm32f1xx_hal.h>
#include <board.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief  初始化串口2
 * @param  无
 * @retval RT_EOK - 初始化成功，其他值 - 初始化失败
 */
int uart2_init(void);

/**
 * @brief  通过串口2发送数据
 * @param  data - 要发送的数据缓冲区
 * @param  len - 要发送的数据长度
 * @retval 实际发送的数据长度
 */
int uart2_send(const uint8_t *data, int len);

/**
 * @brief  设置串口2接收数据的回调函数
 * @param  cb - 回调函数指针
 * @retval 无
 */
void uart2_set_rx_callback(void (*cb)(uint8_t));

#ifdef __cplusplus
}
#endif

#endif /* __DRV_UART2_H__ */
